#include <iostream>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>

int main()
{
    // 库函数
    printf("hello printf!\n");
    fprintf(stdout, "hello fprintf!\n");
    const char *s = "hello fwrite!\n";
    fwrite(s, strlen(s), 1, stdout);
    // 系统调用
    const char *msg = "hello write\n";
    write(1, msg, strlen(msg));
    // 创建子进程, 程序结束父子进程的缓冲区都会刷新
    fork();
    return 0;
}


// int main()
// {
//     close(2);
//     int fd = open("log.txt", O_CREAT | O_WRONLY | O_TRUNC, 0666);
//     if(fd == 0)
//     {
//         perror("open error!");
//         return 1;
//     }
//     // 库函数, 打印到了缓冲区(全缓冲)！
//     printf("hello printf!\n");
//     printf("hello printf!\n");
//     printf("hello printf!\n");

//     const char *msg = "hello write!\n";
//     write(fd, msg, strlen(msg)); // 系统调用

//     close(fd);
//     return 0;
// }


// int main()
// {
//     // 输出到标准输出[1]上——>显示器文件
//     std::cout<< "hello cout!" << std::endl;
//     printf("hello printf!\n");
//     // 输出到标准错误[2]上——>显示器文件
//     std::cerr << "hello cerr!" << std::endl;
//     fprintf(stderr, "hello fprintf!\n");
//     return 0;
// }